var util = {}
// 倒计时 2 ，直接输入一个时间字符串 '2020/11/23 00:00:00' ，'/'
// 分割的(在苹果上必须使用 '/' 分割的时间使用)
util.goback = (dayID, hourID, minuteID, secondID, endTime) => {
	// 此时的时间 不是东八区的时间
	let today = new Date()
	// console.log(today); // 2018-12-19T02:33:50.708Z
	// 此时的时间 北京时间
	// let today_0 = Date()
	// console.log(today_0); // Wed Dec 19 2018 10:36:20 GMT+0800 (GMT+08:00)
	// 返回1970-1-1至今的毫秒数
	let currentSecondFrom1970 = today.getTime()
	// console.log(currentSecondFrom1970);
	// 返回你设置的那一天到1970-1-1的毫秒数
	// let featureDay =  new Date('2018-12-20 00:00:00');
	// let featureSecondFrom1970 = featureDay.getTime();
	endTime = new Date(endTime)
	let featureSecondFrom1970 = endTime.getTime()
	// console.log(featureSecondFrom1970);
	// 两天之间的时间差 单位毫秒
	let diff = (featureSecondFrom1970 - currentSecondFrom1970) / 1000
	// console.log(diff);

	// 格式化时间的方法 年月要动态获取 不同年的年月不同
	let day, hour, minute, second
	day = Math.floor(diff / (24 * 60 * 60))
	// console.log('day:' + day); // 0.547226886574074
	// 取模 暂时不清楚
	let modulo = diff % (24 * 60 * 60)
	// console.log(modulo);
	hour = Math.floor(modulo / (60 * 60))
	// console.log('hour:' + hour);
	modulo = modulo % (60 * 60) // 余数
	// console.log(modulo);
	minute = Math.floor(modulo / 60)
	// console.log('minute:' + minute);
	second = Math.floor(modulo % 60)
	// console.log('second:' + second);
	function addZero(str) {
		str = str.toString()
		if (str.length >= 2) return str
		if (str.length < 2) {
			str = '0' + str
		}
		return str
	}
	// console.log( 'addZero(minute):' + addZero(minute));
	// console.log( 'addZero(second):' + addZero(second));
	// document.getElementById(id).innerHTML = "还剩:" + day + "天" + hour + "小时" + minute + "分钟" + second + "秒";
	if (day >= 0 && hour >= 0 && minute >= 0 && second >= 0) {
		dayID.innerHTML = day
		hourID.innerHTML = addZero(hour)
		minuteID.innerHTML = addZero(minute)
		secondID.innerHTML = addZero(second)
	} else {
		// $('.text').html('特价活动已结束')
	}

	setTimeout(function() {
		util.goback(dayID, hourID, minuteID, secondID, endTime)
	}, 1000)
}
// 时间戳的转换
// @param  string  format
// @param  integer timestamp
// @return string
// 使用格式： util.date('Y-m-d H:i:s',new Date().getTime()/1000)

// 3 'Y-m-d H:i:s' 字符串格式，通过秒数，获取到'2020/11/23 00:00:00' 字符串
// 在倒计时中，秒数自减，调用该方法获取一个；

util.datas = (millisecond)=> {
	let seconds = Math.round(millisecond);
	    let result = [];
	    let count = 2;
	    while(count >= 0) {
	        let current = Math.floor(seconds / (60 ** count));
	        result.push(current);
	        seconds -= current * (60 ** count);
	        --count;
	    }
	    return result.map(item => item <= 9 ? `0${item}` : item).join(":")
}

util.date = (format, timestamp) => {
	var date = (timestamp > 0) ? new Date(timestamp * 1000) : new Date()
	var regex = /[a-zA-Z]/g

	function _supplement(value) {
		return (value < 10) ? '0' + value : value
	}

	function _replace(match) {
		switch (match) {
			case 'Y':
				return date.getFullYear()
				break
			case 'm':
				return _supplement(date.getMonth() + 1)
				break
			case 'd':
				return _supplement(date.getDate())
				break
			case 'H':
				return _supplement(date.getHours())
				break;
			case 'i':
				return _supplement(date.getMinutes())
				break;
			case 's':
				return _supplement(date.getSeconds())
				break;
		}
	}
	return format.replace(regex, _replace)
}

// es6 数组去重
util.unique = (arr) => {
	return Array.from(new Set(arr))
}
// 数组对象去重
// util.objque = (person) => {
//   let obj = {}
//   person.reduce((cur, next) => {
//     obj[next.id] ? '' : obj[next.id] = true && cur.push(next)
//     return cur
//   })
// }

util.reg = /^([a-zA-Z\d][\w-]{2,})@(\w{2,})\.([a-z]{2,})(\.[a-z]{2,})?$/

export default util